home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Commodore Free 29
/
Commodore_Free_Issue_29_2009_Commodore_Computer_Club.d64
/
spiro part 2
< prev
next >
Wrap
Text File
|
2023-02-26
|
11KB
|
363 lines
************************************
* Interview with Spiro Trikaliotis *
* Part of the Vice Team *
************************************
CONTINUED FROM PART 1
COMMODRE FREE - Can you explain
OpenCBM to our readers?
SPIRO TRIKALIOTIS - OpenCBM started
out as cbm4linux which was written by
Michael Klein; Ibelieve he started
the project in 1999. It was his
approach to connect CBM serial
devices (floppy drives, printers) to
the PC on Linux machines, in "the
same way" like, for example it is
possible using Star Commander by Joe
Forster. In fact, Joe helped Michael
with technical information, as far
as I know.
Of course, "in the same way" is not
completely correct: cbm4linux did not
- and does not - have any fancy GUI.
However, Michael could not just port
over the transfer routines of the
Star Commander to Linux. The reason
is simple: When Commodore invented
the serial IEC protocol used for the
bus, it did not have in mind that
some day, computers will be
multi-tasking and doing many things
simultaneously. Thus, they invented a
synchronous protocol; that is,
whenever a transfer is to take place,
both sides have to use a rather
strict timing. Before Michael's work,
it was believed that a multi-tasking
machine like a PC running Linux will
not be able to hold that timing. The
Star Commander does not have that
problem, as DOS is not multi-tasking.
Michael found out that he can, in
fact, disable multi-tasking for short
periods of time on Linux. There is
only one operation that is critical:
In some cases, the receiver of a
transmission can delay transmission
for an arbitrary time. It is ready to
receive, it gives a signal which has
to be answered within 200 us, or the
transmission will fail. Now, 200 us
is very tight on a multi-tasking
machine. Michael found out that he
can use an interrupt for this if he
exchanges two pins on the then-famous
XE1541 cable: The XM1541 cable was
born. (There is an intermediate cable
version available, but this is not
important here.)
That's why even now, OpenCBM is not
able to use the XE1541 cable nor the
X1541 cable.
Now, given the good work from
Michael, it was relatively easy to
port over cbm4linux to Windows,
resulting in cbm4win. Version 0.1.0
of cbm4win was already functional in
2000 on Windows NT 4.0, but, as
explained above, for legal reasons, I
could not release it. The date must
have been 2003 or 2004 when I rewrote
cbm4win a second time, and when I
released it to the public. In that
time, I received so much help from
Michael as well as Joe, and also from
thorough testing from Wolfgang Moser.
In the mean time, cbm4linux and
cbm4win diverted in the sources;
thus, it was hard to keep them
consistent whenever a bug was found.
Thus, Michael and I decided to rejoin
both projects, and the result is
OpenCBM. It comes in two flavours,
OpenCBM/Linux (formerly cbm4linux)
and OpenCBM/Windows (formerly
cbm4win); however, the sources are
the same, except for the platform
specific parts.
Q.how it is OpenCBM utilised?
OpenCBM itself can be used in two
different ways: At first, there is
the command line, where you have to
run the various commands OpenCBM
includes. I like to work this way,
but many people dislike it. However,
as OpenCBM also has a programming
API, implemented by a DLL (Windows)
or a shared library (Linux), it would
be easy to built a GUI around it.
However, it seems almost no one has
done this. There is, however, a GUI
for Windows available, called
gui4cbm4win. It has been written by
Leif Bloomquist, and now been taken
over by Payton Byrd. It is a Visual
Basic application which directly
calls the OpenCBM commands on the
command line. Thus, in my view, it is
no clean solution - but, one must
admit, it was never meant to be one.
To overcome this limitation, as most
Windows users need some UI, I wrote a
Virtual Device Driver for OpenCBM.
This way, any DOS program which runs
on Windows NT 4.0, 2000, XP or Vista
can use the OpenCBM API. DOS program?
Yes, DOS program, as there is one
program available which has a UI that
many people are familiar with: The
Star Commander. Joe, its author,
added the possibility to use that
API, thus, OpenCBM + Star Commander
are a good team on Windows now.
However, with Windows XP and Vista in
64 bit versions, there are some
problems: First, both do not run DOS
programs any more; secondly, on Vista
64 bit, OpenCBM does not load any
more because it is not signed. If
anyone has the ability for me to sign
it (with a VeriSign signature or
similar), feel free to contact me. I
do not feel I should spend $400 per
year just to be "allowed" to run my
driver on Windows 64 bit.
Q. Does our reader need any other
hardware for use with OpenCBM?
Yes, indeed. The easiest solution
needs your computer to be equipped
with a parallel port. Note that it
must be a native one: Parallel ports
on PCI or PCI Express cards will most
likely not work; at least, I do not
know any that actually work. All ISA
cards I know do work, and PCMCIA
cards might work, depending upon how
they are internally organised.
If you have a parallel port, OpenCBM
needs either an XM1541 or an XA1541
cable. Instructions on building these
can be found on Joe's site:
http://sta.c64.org/xm1541.html for
the XM1541, and
http://sta.c64.org/xa1541.html for
the XA1541. Additionally, if you want
to be able to do fast transfer, you
might want to additionally use an
XP1541 cable
(http://sta.c64.org/xp1541.html).
Note that the XP1541 cable alone is
not enough; it must be used in
conjunction with one of the other two
cables.
If your computer does not have a
parallel port - many modern machines
fall into this category -, there is
another solution: The XU1541 cable
(http://www.trikaliotis.net/xu1541).
It connects your drive to the USB bus
instead of to the parallel port. This
cable was originally designed by Till
Harbaum, but he lost interest in it.
Currently, OpenCBM development
versions support this cable, but the
latest release does not. If anyone
builds such a cable, it would be best
if he contact me so I can tell what
the current status is.
Note, however, that the XU1541 cable
does not convert your Commodore drive
into some memory that can be used
directly from Windows; you still have
to use OpenCBM in order to access it.
Additionally note that besides their
names; all the cables (i.e., XM1541,
XA1541, XU1541) can be used for all
IEC devices, not only for the 1541.
In fact, in conjunction with an
IEC2IEEE device, I use them also to
connect a 8250LP drive (from the PET
era, with an IEEE bus) to my PC.
This is not true for the XP1541. This
is only available for the 1541 and
the 1571; additionally, it cannot be
used with the XU1541.
Q. Is OpenCBM free to download and
use?
Yes. OpenCBM is GPLv2
(http://www.gnu.org/licenses/gpl-2.0.h
tml), exactly like VICE. You get even
the source code, and you are allowed
to modify them. But, if you give away
binary versions, you must take care -
read the license before doing this!
Q. What was the decision to produce
free software, why didn't you charge
for the software?
In both projects, OpenCBM and VICE, I
had no choice, even if I wanted: Both
were already GPL, thus, I had to use
that. However, if I would have to
program everything from scratch, I
believe I would not charge for it,
anyway. Even if I wanted to: To
market is so small, who should buy
anything?
However, I made an interesting
observation: Since I started with
OpenCBM, I have been given the one or
the other thing I needed. For
example, when I started on OpenCBM, I
needed some more cables, as I had
only one variant. Joe Forster send me
all required cables for free no
postage, no nothing.
Then, at some time later, Andreas
Senk contacted me because he had
built an IEC2IEEE, a device designed
by Jochen Adler, but it did not work
with OpenCBM. After some research, I
found I could not debug this without
actually owning such a device.
Andreas sent me his device, so I
could do the tests - and I found a
rather severe timing bug in OpenCBM.
When I wanted to return the device to
him, he told me I could keep it, as
he already had built a new one -
again, for free.
I already received some small parts
for my Plus/4 for free when I needed
it. I got it with the words: "You
have given so much time for OpenCBM,
now, I give you a little bit back."
These are fine moments.
CF- Do you still feel there is
commercial value in 8-bit machines,
for example if a new 8bit system was
released do you think anyone would
purchase such a system?
Other than for nostalgic reasons: No,
I don't think many people would buy
them. I believe even the DTV was
mostly bought by people who already
owned a C64.
look at the Commodore One: Even
considering the fact that the
marketing was not very good in my
opinion, it was not a success. I
cannot believe how many people will
buy something like this. In fact, I
doubt I would buy such a machine
myself. It has no practical value.
It's the same as with the Commodore
65. It might be nice from the
technical point of view, thinking
about the time frame when it was
made, but the lack of software is a
big problem.
Q. If Commodore were still around
today what do you think they would be
making?
I never was good in these "what-if"
questions, so I would rather not say
anything on that subject. In fact,
when I came back to the Commodore
scene in 1999, I did not even know
that Commodore had filed for
bankruptcy some years before.
Q. Are you working on any other
projects you would like to talk
about?
Oh, I could tell you, but then I
would have to kill you - nah, just
kidding.
Taking my limited time at the moment
- which especially you must recognise
because it took you almost a year to
do this interview I think I should
not announce anything as long as I am
not totally sure that it will
eventually become true. The only
project which is "almost done" is the
integration of the XU1541 into
OpenCBM. In order to integrate the
XU1541, OpenCBM was extended in a way
that it supports plugins now. There
is currently a plugin for the XA1541
and the XM1541 cables, and another
plugin for the XU1541 cable. If there
will be new cables in the future
(firewire, anyone? ;)), it would be a
matter of writing a plugin only.
I would like to greet all the people
out there who read this and did not
fall to sleep until now, and I
especially thank you, Nigel, for the
opportunity to speak up here, and
your patience for me not answering in
time.
If anyone wants to contact me, my
contact details can be found at
http://www.trikaliotis.net/ (no fixed
mail address, as I occasionally
change them due to SPAM reasons.)
COMMODORE FREE Comments
Spiro Trikaliotis How can we thank
you enough for all the time you spend
on these free projects, thank you for
your time and answering my questions.
--